﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using TCC_Hotel.Serviços.OtherServices;
using TCC_Hotel.Serviços.BDServices;

namespace TCC_Hotel.Apresentacao.Gerencia
{
    public partial class RelatorioReceitas : System.Web.UI.Page
    {
       
        /// <summary>
        /// Carregamento da página
        /// </summary>      
        protected void Page_Load(object sender, EventArgs e)
        {
            //Recupera o usuario corrente
            string usuario = Request.ServerVariables["AUTH_USER"].ToString();
            LoginService servico_Login = new LoginService();
            //Verifica permissao ao acesso da página
            if (!servico_Login.RecuperarPermissaoCache(usuario).Gerenciar_Receitas)
            {
                //Redireciona para a pagina inicial
                Response.Redirect("~/");
            }
            
        }

        /// <summary>
        /// Evento do botão de gerar
        /// </summary>       
        protected void btnGerar_Click(object sender, EventArgs e)
        {
            
            ComumServices comum = new ComumServices();

            //preenche a lista obrigatoria para verificar se todos os campos obrigatorios fora preenchidos
            List<string> listaObrigatoria = new List<string>() 
            { 
                txtPeriodoInicial.Text.Trim(),
                txtPeriodoFinal.Text.Trim()          
            };


            //Verifica se algum campo obrigatório nao foi preenchido
            if (!comum.ValidaCamposObrigatorios(listaObrigatoria))
            {
                MensagemJS("ERRO: Digite o período desejado!");
                return;
            }
           

            //verifica a data de fim nao eh menor que a de começo
            if ((Convert.ToDateTime(txtPeriodoFinal.Text) - Convert.ToDateTime(txtPeriodoInicial.Text)).Days < 0)
            {
                MensagemJS("ERRO: Data final menor que a data inicial");
                return;
            }
            
            //verifica se as datas são validas
            if (txtPeriodoFinal.Text.Length < 10 || txtPeriodoInicial.Text.Length < 10)
            {
                MensagemJS("ERRO: Datas incorretas!");
                return;
            }
           
            Page page = (Page)HttpContext.Current.Handler;

            string data_Final = txtPeriodoFinal.Text;
            string data_Inicial = txtPeriodoInicial.Text;
          
            string script;
            script = @"window.open(""{0}"", ""{1}"");";

            //mecanismo em javaScript para abrir a página em outra janela
            script = String.Format(script, "./ExibirReceita.aspx?data_Inicial=" + data_Inicial + "&data_Final=" + data_Final, "_blank");

            //Script que abre outra janela com a conta do hóspede
            ScriptManager.RegisterStartupScript(page, typeof(Page), "Redirect", script, true);
            
        }

        /// <summary>
        /// Lança um popup em javaScript com alguma mensagem
        /// </summary>
        /// <param name="msg">Mensagem do popup</param>
        public void MensagemJS(string msg)
        {
            //Formata um alert para o usuário
            Page.ClientScript.RegisterStartupScript(

                     this.GetType(),

                     "Mensagem",

                     "$(window).load(function(){alert('" + msg + "')});",

                     true);

        }
    }
}